# RUN: llvm-mc -arch=amdgcn -mcpu=gfx900 -disassemble -show-encoding < %s | FileCheck %s

# CHECK: flat_atomic_add v[0:1], v0    ; encoding: [0x00,0x00,0x08,0xdd,0x00,0x00,0x00,0x00]
0x00,0x00,0x08,0xdd,0x00,0x00,0x00,0x00

# CHECK: flat_atomic_add v[0:1], v0 offset:7    ; encoding: [0x07,0x00,0x08,0xdd,0x00,0x00,0x00,0x00]
0x07,0x00,0x08,0xdd,0x00,0x00,0x00,0x00

# CHECK: flat_atomic_add v0, v[0:1], v0 offset:4095 glc    ; encoding: [0xff,0x0f,0x09,0xdd,0x00,0x00,0x00,0x00]
0xff,0x0f,0x09,0xdd,0x00,0x00,0x00,0x00

# CHECK: flat_atomic_add v0, v[0:1], v0 offset:4095 glc slc ; encoding: [0xff,0x0f,0x0b,0xdd,0x00,0x00,0x00,0x00]
0xff,0x0f,0x0b,0xdd,0x00,0x00,0x00,0x00

# CHECK: flat_atomic_add v0, v[0:1], v0 glc ; encoding: [0x00,0x00,0x09,0xdd,0x00,0x00,0x00,0x00]
0x00,0x00,0x09,0xdd,0x00,0x00,0x00,0x00

# CHECK: flat_atomic_add v0, v[0:1], v0 glc slc ; encoding: [0x00,0x00,0x0b,0xdd,0x00,0x00,0x00,0x00]
0x00,0x00,0x0b,0xdd,0x00,0x00,0x00,0x00

# CHECK: flat_atomic_add v[0:1], v0 slc  ; encoding: [0x00,0x00,0x0a,0xdd,0x00,0x00,0x00,0x00]
0x00,0x00,0x0a,0xdd,0x00,0x00,0x00,0x00

# CHECK: flat_atomic_add v[0:1], v0 offset:4095 slc    ; encoding: [0xff,0x0f,0x0a,0xdd,0x00,0x00,0x00,0x00]
0xff,0x0f,0x0a,0xdd,0x00,0x00,0x00,0x00

# CHECK: flat_load_dword v0, v[0:1]    ; encoding: [0x00,0x00,0x50,0xdc,0x00,0x00,0x00,0x00]
0x00,0x00,0x50,0xdc,0x00,0x00,0x00,0x00

# CHECK: flat_load_dword v0, v[0:1] offset:7    ; encoding: [0x07,0x00,0x50,0xdc,0x00,0x00,0x00,0x00]
0x07,0x00,0x50,0xdc,0x00,0x00,0x00,0x00

# CHECK: flat_load_dword v0, v[0:1] offset:4095 glc    ; encoding: [0xff,0x0f,0x51,0xdc,0x00,0x00,0x00,0x00]
0xff,0x0f,0x51,0xdc,0x00,0x00,0x00,0x00

# CHECK: flat_store_byte v[0:1], v0    ; encoding: [0x00,0x00,0x60,0xdc,0x00,0x00,0x00,0x00]
0x00,0x00,0x60,0xdc,0x00,0x00,0x00,0x00

# CHECK: flat_store_byte v[0:1], v0 offset:7    ; encoding: [0x07,0x00,0x60,0xdc,0x00,0x00,0x00,0x00]
0x07,0x00,0x60,0xdc,0x00,0x00,0x00,0x00

# CHECK: flat_store_byte v[0:1], v0 offset:4095 glc    ; encoding: [0xff,0x0f,0x61,0xdc,0x00,0x00,0x00,0x00]
0xff,0x0f,0x61,0xdc,0x00,0x00,0x00,0x00

# CHECK: global_atomic_add v2, v4, s[0:1]    ; encoding: [0x00,0x80,0x08,0xdd,0x02,0x04,0x00,0x00]
0x00,0x80,0x08,0xdd,0x02,0x04,0x00,0x00

# CHECK: global_atomic_add v2, v4, s[0:1] offset:4095    ; encoding: [0xff,0x8f,0x08,0xdd,0x02,0x04,0x00,0x00]
0xff,0x8f,0x08,0xdd,0x02,0x04,0x00,0x00

# CHECK: global_atomic_add v2, v4, s[0:1] offset:-4096    ; encoding: [0x00,0x90,0x08,0xdd,0x02,0x04,0x00,0x00]
0x00,0x90,0x08,0xdd,0x02,0x04,0x00,0x00

# CHECK: global_atomic_add v0, v2, v4, s[0:1] offset:-1 glc    ; encoding: [0xff,0x9f,0x09,0xdd,0x02,0x04,0x00,0x00]
0xff,0x9f,0x09,0xdd,0x02,0x04,0x00,0x00

# CHECK: global_load_sbyte v0, v2, s[0:1]    ; encoding: [0x00,0x80,0x44,0xdc,0x02,0x00,0x00,0x00]
0x00,0x80,0x44,0xdc,0x02,0x00,0x00,0x00

# CHECK: global_load_sbyte v0, v2, s[0:1] offset:4095    ; encoding: [0xff,0x8f,0x44,0xdc,0x02,0x00,0x00,0x00]
0xff,0x8f,0x44,0xdc,0x02,0x00,0x00,0x00

# CHECK: global_load_sbyte v0, v2, s[0:1] offset:-4096    ; encoding: [0x00,0x90,0x44,0xdc,0x02,0x00,0x00,0x00]
0x00,0x90,0x44,0xdc,0x02,0x00,0x00,0x00

# CHECK: global_store_dwordx2 v2, v[4:5], s[0:1]    ; encoding: [0x00,0x80,0x74,0xdc,0x02,0x04,0x00,0x00]
0x00,0x80,0x74,0xdc,0x02,0x04,0x00,0x00

# CHECK: global_store_dwordx2 v2, v[4:5], s[0:1] offset:4095    ; encoding: [0xff,0x8f,0x74,0xdc,0x02,0x04,0x00,0x00]
0xff,0x8f,0x74,0xdc,0x02,0x04,0x00,0x00

# CHECK: global_store_dwordx2 v2, v[4:5], s[0:1] offset:-4096    ; encoding: [0x00,0x90,0x74,0xdc,0x02,0x04,0x00,0x00]
0x00,0x90,0x74,0xdc,0x02,0x04,0x00,0x00

# CHECK: scratch_load_dword v0, v0, off offset:-1    ; encoding: [0xff,0x5f,0x50,0xdc,0x00,0x00,0x7f,0x00]
0xff,0x5f,0x50,0xdc,0x00,0x00,0x7f,0x00

# CHECK: scratch_load_dword v0, off, s0    ; encoding: [0x00,0x40,0x50,0xdc,0x00,0x00,0x00,0x00]
0x00,0x40,0x50,0xdc,0x00,0x00,0x00,0x00

# CHECK: scratch_load_dword v0, off, s0 offset:4095    ; encoding: [0xff,0x4f,0x50,0xdc,0x00,0x00,0x00,0x00]
0xff,0x4f,0x50,0xdc,0x00,0x00,0x00,0x00

# CHECK: scratch_load_dword v0, off, s0 offset:-4096    ; encoding: [0x00,0x50,0x50,0xdc,0x00,0x00,0x00,0x00]
0x00,0x50,0x50,0xdc,0x00,0x00,0x00,0x00

# CHECK: scratch_store_short v0, v0, off offset:-1    ; encoding: [0xff,0x5f,0x68,0xdc,0x00,0x00,0x7f,0x00]
0xff,0x5f,0x68,0xdc,0x00,0x00,0x7f,0x00

# CHECK: scratch_store_short off, v0, s0    ; encoding: [0x00,0x40,0x68,0xdc,0x00,0x00,0x00,0x00]
0x00,0x40,0x68,0xdc,0x00,0x00,0x00,0x00

# CHECK: scratch_store_short off, v0, s0 offset:4095    ; encoding: [0xff,0x4f,0x68,0xdc,0x00,0x00,0x00,0x00]
0xff,0x4f,0x68,0xdc,0x00,0x00,0x00,0x00

# CHECK: scratch_store_short off, v0, s0 offset:-4096    ; encoding: [0x00,0x50,0x68,0xdc,0x00,0x00,0x00,0x00]
0x00,0x50,0x68,0xdc,0x00,0x00,0x00,0x00
